package com.cskaoyan.javase.method._1detail;

/**
 * 对于一个方法而言,语法:
 * [修饰符列表] 返回值类型 方法名 (形式参数列表){
 *   // 方法体
 * }
 *
 * 方法的形参列表中形参的数据类型决定了方法调用时,传入的实参的数据类型
 * 那么
 *      实参的数据类型需要和形参数据类型保持一致吗?
 *
 * 不强求一致,实际上"当实参的数据类型可以自动类型转换到形参数据类型时,这个实参就允许传入方法"
 *
 * 扩展/举一反三:
 *      1.既然实参数据类型和形参数据类型存在自动类型转换,那么方法的具体返回值类型和方法定义的返回值类型
 *          有没有这个关系呢?
 *          同样具有这个关系
 *
 *      2.既然基本数据类型存在上述关系,那么引用数据类型存在吗?
 *      当然存在
 *
 * @since 17:02
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo3 {
    public static void main(String[] args) {
        test(100);
        int num = 100;
        test(num);
        byte num2 = 100;
        test(num2);
        char num3 = 100;
        test(num3);

        long num4 = 100L;
        // test(num4);

        test2(num);
        test2(num2);
        test2(num3);
    }

    public static void test(int a) {
    }

    public static void test2(long a) {
    }

    // test3方法允许传入所有的基本数据类型数值类型
    public static void test3(double a) {
    }

    public static double test4() {
        // return 0.1;
        // return 100;
        return 'a';
    }
}
